首页
下载应用
提交文章
关于我们
🔥 热搜 🔥
1
上海
2
习近平
3
新疆
4
鄂州父女瓜
5
乌鲁木齐
6
疫情
7
H工口小学生赛高
8
习明泽
9
芊川一笑图包
10
印尼排华
分类
社会
娱乐
国际
人权
科技
经济
其它
首页
下载应用
提交文章
关于我们
🔥
热搜
🔥
1
百度
2
今日热点
3
微信公众平台
4
贴吧
5
opgg
6
dnf私服
7
百度贴吧
8
知乎
9
dnf公益服
10
百度傻逼
分类
社会
娱乐
国际
人权
科技
经济
其它
薄公子低调成台湾女婿 23日已在台举办婚礼
警察殴打打人学生,舆论撕裂的背后
你手放哪呢,出生啊
薅广电羊毛!100元话费实付94.6元,还有电费96.9充100元!招团长~
警察踢打校园欺凌者:当事人不愿返校,派出所拒收锦旗
生成图片,分享到微信朋友圈
查看原文
其他
“Linux之父”Linus Torvalds论编程之美:在计算机的世界,你就是造物主
Original
Linus Torvalds
数据实战派
2022-01-14
作者:Linus Torvalds(“最伟大程序员”之一,对 Linux 内核开发起着至关重要的作用)
译者:贺佳
原文:The Beauty of Programming
虽然还不知道怎样去解释我对编程的迷恋,但是我想尽量把这种感受传递给你。对于一些编程者来说,这世上再没有比它更有趣的事情了。这可比下棋强多了,你可以自己制定规则,并且利用它,获得一切想得到的结果。
不过,在旁人看来,编程可能是世界上最无聊的东西了。
编程最初让人兴奋的点很容易解释:只要告诉计算机做什么,它就会一一照办,一丝不苟、始终不渝、并且绝无抱怨。
这本身就很有趣。
当然,一味地盲从虽然最初令人着迷,但显然单靠这一点,并不能让人终生为伴。编程的迷人之处在于,在让计算机执行指令之前,你得弄明白怎么做。
个人而言,我坚信计算机科学与物理学有诸多共同点。两者都在一个相当基础层面的探讨世界的运行规则。在物理学领域,人们要研究世界如何构成,而在计算机科学中,你可以创造世界。
在计算机的世界里,你就是“造物主”,你主宰一切的发生。如果足够优秀,你甚至可以成为“上帝”,当然,是就这个小世界而言的。
我这么说可能冒犯了世上一半的人。
但事实便是如此。你可以创造属于自己的世界,对你唯一的限制就是机器的性能,很多时候你会发现,也可能是你自己的能力。
想想树屋吧。你可以造一个功能齐备、结构稳定还带着活动门的树屋。人人都知道树屋是简陋还是精致,要看怎么在搭屋的树上进行创作。这关乎艺术和工程学的结合。这也是编程如此引人入胜又令人充满满足感的原因之一。这种感觉仅次于有趣、漂亮或者令人惊叹。
它还可以训练创造力。
最初吸引我参与编程的是,想要了解计算机工作原理的过程。最大的乐趣之一是,我发现计算机就像数学:你可以用其规则创造属于你自己的世界。在物理学中,人们要受到既有规则的束缚,但数学不同,和编程一样,只要自洽,一切皆可行。数学不必受外部逻辑的约束,但它必须有自身逻辑。每一个数学家都知道,你确实可以设立一组“3+3=2”的方程。事实上,你可以做任何想做的事,但随着所创造的这个“世界”日渐复杂,你必须要小心地保持它们逻辑上的一致性。为了这个小小“世界”的精致美好,不能有任何疏漏。这就是编程的工作原理。
人们对计算机着迷的原因之一是,它能使人感受自己创造出的新世界,去了解什么是可能的。数学上,人们能在脑子里联想。比如,提到几何形状,大多数人会想到欧几里得几何,而计算机可以帮助人们实现所想不同几何形状的可视化,它们可都不是欧几里得几何。
利用计算机,你可以进入这些虚拟世界,并且实实在在看到它们的样子。还记得Mandelbrot set基于Benoit Mandelbrot方程的分形图像吗?
它们就是纯数学世界的视觉表现,这在计算机出现之前是无法想象的。
Mandelbrot随意为他的世界编造了些不存在的规则,与现实世界无关,制定了这些任意规则,但事实证明,这些规则所创造的模式令人着迷。运用计算机和编程,你可以建立一个全新的世界,有时,这个模式真是很美。
大多数情况下,你并没有在做上面所说的事。你只是在简单写个程序完成某个特定任务。
此时,你并不是在创造一个新世界,而是在解决计算机世界中的问题。这个问题要想办法解决,而只有某一类的人才会坐在屏幕前盯着屏幕思考这些问题,像我这样的“书呆子”。
操作系统是计算机的基础,而创造一个操作系统则是计算机领域的终极挑战。当你创建操作系统的时候,你就是在创造一个世界,在这个“世界”中,所有计算机程序基本上都会实时运行,而你则在制定规则,规定什么合适,什么可以做,什么不能做。程序来具体运行,但操作系统是最基础的。这就像是你在制定这片“土地”上的宪法,其他计算机上运行的程序则是普通法。
有时候,某条规则讲不通,但是“通”的是你努力追求的。
你希望能看到解法,并且发现自己通过正确方式得到了正确答案。
还记得学校里那些总能做对题的人吗?他们比别人做得快,之所以会这样,是因为他们并不追求这个。他们并不是在学如何解决问题,而只是在以正确的方式思考问题。一旦有了结果,就非常完美。
在计算机中也是如此。你可以用蛮力,愚蠢地对付问题,直到它不再是问题,或者找到正确的方法,让问题自己消失。换一种方式看问题,你会顿悟:它之所以是问题,是因为看待它的方式错了。
最好的还是数学中的一个例子。伟大的德国数学家高斯(mathematician Carl Friedrich Gauss)小时候,某天,老师很无聊,为了使学生专心,决定让他们从1加到100。他希望学生们花一整天算完。
没想到,这位初出茅庐的数学家五分钟就交卷了,答案完全正确:5050。这道题的解法并不是将所有数字顺序一一相加,这样既笨拙又劳神。高斯发现,将1和100相加可以得到101,然后2和99相加也是101,3和98也是,直到50和51相加得到101。仅仅几秒钟,他注意到正好50对101,因此答案是5050。
也许这个故事是虚构的,但是道理很清楚:伟大的数学家并没有采用漫长而无聊的方式解决问题,他看到了问题背后的真正规律,并且运用该规律用更好的方式找到了答案。
在计算机科学领域也是如此。当然,你可以写一个程序来计算总和。在现在的电脑上,也就是一瞬间的事。但是一个伟大的程序员只要够聪明,就知道答案是什么。他知道要写一个漂亮的程序,用一种新的方法来解决问题,最终,这也是正确的方法。
还是很难解释,连着把头往墙上撞三天还找不出更好的、更漂亮的解决方法这件事有什么好迷人的,但是一旦你找到了,那真是世界上最棒的感觉了。
Refenrence:
https://www.brynmawr.edu/cs/resources/beauty-of-programming
往期推荐
丨
改善图神经网络的鲁棒性,图结构学习最新进展如何?
丨
贝叶斯网络之父 Judea Pearl 推荐:迈向可解释的知识驱动系统
丨
ForceNet:一个用于大规模量子计算的图神经网络
丨
2020 图灵奖发布,两位编程语言先驱、《龙书》作者获奖
丨
陈天桥雒芊芊脑机接口中心等团队新成果:超声波 “读脑”,用思想控制机器的新方法
丨
语言模型能知道一头大象有多重吗?
丨
听李宏毅点评 GPT-3:来自猎人暗黑大陆的模型
丨
麻省理工学院学者万字长文:计算机作为一种通用技术的衰落
丨
你的脸是这样丢掉的:人脸数据集的史上最大规模调查
丨
是什么让女性在计算机史上 “隐身” 了?
丨
AI 加剧系统性剥削,这一类人时薪已低至 2 美元
丨
量子 NLP 已来?一英国创企:实现迄今最大规模量子自然语言处理
丨
MIT 机器人教父 Rodney Brooks:机械臂编程语言的起源
丨
一家图灵奖得主背书创企的陨落,暴露了 AI 弱国 “恒弱” 的困境?
丨
从本体论到知识图谱, 著名学者 Pascal Hitzler 长文回顾语义网 20 年发展
丨吴恩达团队新研究:在 ImageNet 上优化的模型,真的能更好胜任医学影像任务吗?
丨
华为 AI 水军被推特封禁的背后,谁应为 AI 应用的边界负责?
丨
果蝇能学会 Word Embedding 吗?
关于数据实战派
数据实战派希望用真实数据和行业实战案例,帮助读者提升业务能力,共建有趣的大数据社区。
您可能也对以下帖子感兴趣
{{{title}}}
文章有问题?点此查看未经处理的缓存